INCLUDE_DIRECTORIES( . )

SET(
    HEADERS
    AutoSingleton.hh
    EmptyType.hh
	Future.hh
    Reflection.hh
    SharedLibrary.hh
    SharedLibraryManager.hh
    ThreadSafePolicy.hh
	Logging.hh
	Debug.hh
)

SET(
	SOURCES
	Logging.cc
	Debug.cc
)

ADD_EXECUTABLE(
    Singleton_UnitTest
    Singleton_UnitTest.cc
)

ADD_EXECUTABLE(
    Future_UnitTest
    Future_UnitTest.cc
)

TARGET_LINK_LIBRARIES(
	Singleton_UnitTest
	${Boost_LIBRARIES}
)

TARGET_LINK_LIBRARIES(
	Future_UnitTest
	${Boost_LIBRARIES}
)

ADD_TEST(Singleton_UnitTest ${EXECUTABLE_OUTPUT_PATH}/Singleton_UnitTest)
ADD_TEST(Future_UnitTest ${EXECUTABLE_OUTPUT_PATH}/Future_UnitTest)

ADD_SUBDIRECTORY( Reflection )
ADD_SUBDIRECTORY( Patterns )
ADD_SUBDIRECTORY( Meta )

ADD_LIBRARY(
	Common
	STATIC
	${SOURCES}
	${HEADERS}
)
